Techniques for searching large data repositories have become commonplace. For example, according to conventional search modalities, a user types a search query composed of one or more search terms, a search engine identifies relevant data from a data repository data based on the search query and on a searching algorithm, and the identified data is returned to the user as search results.
Some conventional searching systems monitor the characters typed by the user and contemporaneously suggest search terms based on the characters. Typically, the suggested search terms are generated by querying a remote database of previously-entered queries while the characters are being typed and/or by comparing the typed characters to search queries which have been previously input by the user and which are stored locally.
Enterprise software systems receive, generate, and store data related to many aspects of a business enterprise. In some implementations, this data may relate to marketing, sales, customer relations, supplier relations, inventory, human resources, and/or finances. Analytical tools, such as reporting systems, are commonly used to present such enterprise data to users in useful formats.
Enterprise systems may interact with a semantic layer including a set of abstract entities known as business objects. Each business object associates one or more physical entities (e.g., a physical database table, associated columns of one or more database tables) of one or more enterprise data sources with user-friendly names. The user-friendly names may represent business entities, such as customers, time periods, financial figures, etc. Business objects may be classified as dimensions along which one may want to perform an analysis or report (e.g., Year, Country, Product), details (e.g., additional information on dimensions), and measures (e.g., Sales, Profit) whose values can be determined for a given combination of dimension values. In order to effectively search an enterprise system, a user would prefer to use these user-friendly names instead of references to specific physical entities of the data sources.
The above-described search suggestion mechanisms are often insufficient in the case of enterprise systems. First, repetitive querying of a remote database of previously-entered queries would slow overall system performance. Also, even if remotely- or locally-stored prior search queries could be efficiently retrieved, a user is unable to evaluate the relevance of these retrieved terms to the underlying enterprise data. Moreover, a same term may possess two or more semantic meanings within an enterprise system (e.g., “Paris” may be a city, a name, a portion of an item description, etc.), and conventional search mechanisms do not efficiently allow a user to distinguish between these meanings based on the contents of the enterprise system.
Conventional suggestion mechanisms also fail to implement any access management. For example, previously-entered queries are retrieved from a remote database without regard to the user to whom the queries will be presented.